# -*- coding: utf-8 -*-
# __author__:鲍盈廷
# 2020-04-26
# !/usr/bin/python
import time
import datetime
import random
from time import sleep


# 获取动态列表接口返回的data字段中的所有id，生成字典{'id':str(one['id'])}结果返回一个列表
def get_id(ones):
    return [{'id': str(one['id'])} for one in ones]


# -----------将输入的字符串false/true转换bool类型---------------------
def change_bool(bool):
    """
    :param bool: 入参，false,true
    :return: 返回入参相同的布尔类型
    """
    data = bool
    isTrue = data == 'true'
    return isTrue


# -----------将输入的字符串false/true转换成0/1---------------------
def change_num(str):
    if str == 'false':
        return "0"
    else:
        return "1"


# ---------将入参拼接后返回---------------------
def get_join(str1):
    str2 = str(random.randint(1, 99))
    str1 = str(str1) + str2
    return str1


# ------------判断两个入参是否相等，不相等抛出错误-----------------------------
def Consistent_judgement(str1, str2):
    if str1 != str2:
        raise TypeError(f"{str1} not equal {str2}")


# 调用两次相同动态列表的接口获取不同的数据
def get_newdata(first, second):
    '''
    :param first: 第一次接口请求参数
    :param second: 第二次接口请求参数
    :return: 返回第二次接口的数据不在第一个接口中的数据
    '''
    autual_list = []
    for one in second:
        if one not in first:
            autual_list.append(one)


# 获取一个字符串的任意长度
def get_info_len(str, start, end):
    """
    :param num: 需要截取的字符串
    :param start: 截取的开始位置,从0开始
    :param end: 截取的结束位置，包含+1
    :return: 返回截取后的内容
    """
    return str[int(start):int(end)]


# 计算长度返回str类型
def get_len(a):
    return str(len(a))


# 返回总长度+1
def get_len1(a):
    return str(len(a) + 1)


# ------------获取当前日期+时间，格式是月到秒%m%d%H%M%S--------------------
def time_today_y_s1():
    return datetime.datetime.now().strftime('%m%d%H%M%S')


# ------------获取所有的id值，生成列表随机返回列表中的一个值---------------------
def get_radomdata(datas):
    data = [one['id'] for one in datas]
    return random.choice(data)


# ------------获取所有的输入字段值，生成列表随机返回列表中的一个值---------------------
def get_radomdata2(datas, str):
    data = [one[str] for one in datas]
    return random.choice(data)


# ------------获取所有的输入字段值，根据传入参数名的生成字典{参数名：参数值}生成列表--------------------
def get_radomdata3(a, datas, *args):
    """
    a=1返回所有
    a=2返回一个
    a=3随机返回多个
    """
    if datas == []:
        return []
    else:
        data = []
        for one in datas:
            data1 = {arg: str(one[arg]) for arg in args}
            data.append(data1)
        if a == 1:
            return data
        elif a == 2:
            return random.choice(data)
        else:
            return data[0:random.randint(1, len(data) - 1)]


# --------------------传入的值加随机值并返回-------------------
def get_max_random(data):
    return int(data) + random.randint(300, 999)


# --------------------传入的值随机返回一个列表-------------------
def get_radomdata4(data):
    if data == []:
        raise print('[]')
    else:
        return random.sample(data, random.randint(1, len(data)))


# --------------------获取列表中某个key的值-------------------
def get_keyvaluse(data, keys):
    return data[keys]


# ----------------获取多少天后的时间戳，多少位的时间戳，默认0天13位,int类型-------------------
def get_future_timestamp_int(day=0, num=13):
    """
    获取多少天后的时间戳，多少位的时间戳，默认0天13位
    :param day: 多少天后
    :param num: 多少位时间戳
    :return: 时间戳
    """
    try:
        now = datetime.date.today()
        day = datetime.timedelta(days=day)
        base_day = now + day
        date = base_day.strftime('%Y-%m-%d')
        date_time = time.strptime(date, '%Y-%m-%d')
        timestamp = time.mktime(date_time)
        # 计算多少位时间戳
        if num <= 13:
            base_time = 10 ** (num - 13) * 1000
        base_timestamp = str((timestamp * base_time)).split('.')[0]
        return int(base_timestamp)
    except Exception as error:
        print(error)
        return 0
    # ---------------时间戳(毫秒)转换成字符串格式:"2013-10-10"--------------------------


def time_change_str_b(timestamp):
    time_local = time.localtime(timestamp / 1000)
    return time.strftime("%Y-%m-%d", time_local)


# ---------------日期字符串格式转换:"2013-10-10"--------------------------
def change_str_b(a):
    b = f"{a[0:4]}-{a[-4:-2]}-{a[-2:]}"
    return b


if __name__ == '__main__':
    print(get_id(a['middle']))
    print(get_len(a['middle']))
